
package com.hlkj.pay.app.merchant.ext.dto.order;
/*
 * Hlpay-Plus aggregate payment system.
 * Copyright (c) 2024-2025 Hlpay Team Copyright has the right of final interpretation.
 */

import java.util.Date;
import java.util.List;

import com.hlkj.pay.app.merchant.ext.impl.wxpay.constant.ComplaintStatusType;
import com.hlkj.pay.app.merchant.ext.impl.wxpay.dto.WxComplaintDetailResp;
import com.hlkj.pay.infrastructure.model.order.OrderComplaintChannelDO;
import com.hlkj.pay.infrastructure.model.order.OrderComplaintDO;
import com.hlkj.pay.infrastructure.model.order.OrderComplaintHistoryDO;
import com.hlkj.pay.infrastructure.model.order.PayOrderDO;
import com.hlkj.pay.infrastructure.model.pay.PayChannelRequestDO;
import com.hlkj.pay.infrastructure.model.pay.PayWayDO;
import com.hlkj.pay.infrastructure.model.pay.ProviderChannelConfigDO;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * @author HlpayTeam
 * @date 2024/09/26 10:21
 */
@Data
public class ChannelComplaintOrderContext extends ChannelPayCommonContext{
    /**
     * 支付通道
     */
    private ProviderChannelConfigDO providerChannelConfigDO;
    /**
     * 支付参数
     */
    private PayOrderDO payOrderDO;
    /**
     * 支付方式
     */
    private PayWayDO payWayDO;

    private OrderComplaintChannelDO orderComplaintChannelDO;

    private WxComplaintDetailResp wxComplaintDetailResp;

    private OrderComplaintDO orderComplaintDO;

    private List<OrderComplaintHistoryDO> orderComplaintHistoryDOList;

    // 批量处理的ID
    List<String> complaintIdList;

    /**
     *  1 已联系到用户，协商一致，无异议: CONSENSUS_WITH_CLIENT
     *  2 :其他: ORTHER
     *  3:不涉及退款，已针对投诉内容进行整改: RECTIFICATION_NO_REFUND
     *  4:已退款，用户无异议: REFUND
     *  5:已提交证明材料: SUBMIT_PROOF_NOT_CONTACTED
     *  6:其他渠道已退款: OTHER_CHANNEL_REFUND
     */
    private Integer type;

    /**
     * 获取类型，1：商户留言  2:投诉处理
     */
    private Integer replyType = 1;

    /**
     * 通道请求记录
     */
    private PayChannelRequestDO payChannelRequestDO;
    /**
     * 处理状态
     */
    private ComplaintStatusType status;

    private String notifyUrl;

    private Long successTime;

    @Schema(description = "回复内容/退款原因")
    private String content;

    @Schema(description = "上传图片")
    private List<String> imgUrls;

    @Schema(description = "备注")
    private String remark;

    @Schema(description = "【审批动作】同意:1 或 拒绝:0")
    private Integer action;

    private Integer limit;

    private Integer offset;

    private Integer total;

    @Schema(description = "投诉回调地址")
    private String complaintNotifyUrl;

    @Schema(description = "风险回调地址")
    private String riskNotifyUrl;


    private Date startTime;

    private Date endTime;

}
